Highly realistic or “cinematic” quality volume renderings are based on stochastic Monte-Carlo path tracing techniques. Monte-Carlo path tracing samples a large number of rays of light traveling through the volume to generate a realistic rendered image. Many of the sampled rays do not hit the light source, thus do not ultimately contribute to the rendered image. Bi-directional ray tracing or photon mapping is introduced to sample the rays that do not hit the light source. However, bidirectional ray tracing and photon map rendering methods significantly increase the computational costs of rendering the image.
Photon mapping is a two-pass rendering method for generating accurate and realistic images. The first pass of the photon mapping approach is performed by shooting energy as photons from the light source into the volume, and when these photons hit surfaces of the volume, the photon characteristics are stored as a photon map in a balanced k-dimensional tree (KD-tree). In the second pass of the photon mapping approach, the stored photon characteristics are sampled for rendering an image. Photon maps are stored view-independent, allowing for rendering from any viewpoint or perspective of the volume.